<?
/*代码重用与函数编写*/
/*5.1代码重用的好处*/
echo "代码重用的好处：1.降低成本，2.提高可靠性3.提高一致性";

/*5.2use function require() and include */
//the diffurent between require and include : 
//require("none.txt");
//include("none.txt");
//感觉没什么区别。。。
//require('test.txt');
//include('test.txt');

$fp=fopen($_SERVER['DOCUMENT_ROOT']."/test/main/test.inc",'w+');
flock($fp,LOCK_EX);
fwrite($fp,"</br /><a href=\"../test/main/home.php\">Open a new web to study require().</a><br />");
flock($fp,LOCK_UN);
fclose($fp);
require($_SERVER['DOCUMENT_ROOT']."/test/main/test.inc");
/*5.2.2使用require()制作web站点的模版*/
readfile($_SERVER['DOCUMENT_ROOT']."/test/main/test.inc");//更安全

/*5.2.3使用php.ini中的auto-prepend-file 和 auto-append-file来设置*/
//放弃了，没学


/*5.3在php中使用函数*/
//phpinfo();
function name(){
	echo "调用了一次name函数";
	}

$f="name";
@$a=1/0;
echo $php_errormsg;

function fn2(){
	require("fc/lufunction.php");
	}
fn2();

//require("fc/lufunction.php");
$a=array(1,2,3);
createtable($a,'black');

function var_args(){
	echo "Number of parameters:";
	echo func_num_args();
	echo "<br />These are:";
	$args=func_get_args();
	foreach($args as $v){
		echo $v."&nbsp;";
		}
	}

var_args(1,2,3,4,5,6,0);

/*5.7函数的作用域（局部变量、全局变量和超级全局变量）*/
//通过例子来实现区别
$var='a';
function fn(){
	global $var;
	echo '<br />$var='.@$var;
	$var='b';
	echo '<br />$var='.$var;
	}
fn();	
echo '<br />$var='.$var;
echo $b;//此时b没有值，因为是通过函数的方式来加载lufunction的,当把$b的作用域用global定义之后才可以使用。
//当一个变量有可能在整个脚本中用的的时候，可以用global。
echo "<br />";


/*5.8参数的引用传递和值传递*/
$value=1;
plus1($value);
echo $value;
echo "<br />";//引用地址符&
$value2=1;
plus2($value2);
echo $value2;//设置作用域

/*return 关键字*/
function tryreturn($a){
	if($a<0){return false;}
	if($a==0){echo "a=0";return;echo "不会显示的语句";}
	if($a>0){return "正数";}
	}

if(tryreturn(-1)===false){echo "负数";};
tryreturn(0);
echo tryreturn(1);
tryreturn("wo");
echo "<br />";

@larger();
larger("2","3");
echo larger(2.2,3.3);
echo larger(2,2);
echo larger(2,5);

/*5.10实现递归*/
echo "对hello使用strrev函数".strrev("hello");
function trydigui($a){
	if(strlen($a)>0){
		trydigui(substr($a,1));
		}
		echo substr($a,0,1);
		return;
	}
echo "<br />对hello使用trydigui函数后得到";
trydigui("hello");

function newdigui($a){
	if($a<100){
		newdigui($a+1);
		}
	echo "$a";	
	}
newdigui(50);
//使用循环来倒序打印
function trydigui2($a){
	$b="";
	for($i=1;$i<=strlen($a);$i++){
		$b.=substr($a,-$i,1);
		}
	echo $b;	
	}
trydigui("hello");
/*名称空间：这是什么鬼，书上没说明白但是感觉还是很有用的*/
/*------------------end-------------------*/







?>